The present invention relates to data processing systems and, more particularly, to diagnosing errors in such systems.
Substantial resources are often devoted to the prevention and correction of errors that may occur as data is being processed in a data processing system. Such errors may result, for example, from faults in the system that may occur during manufacture or during operation, or from environmental factors, such as electromagnetic interference (EMI), radio frequency interference (RFI), and alpha particle radiation. It has been long known to use parity bits, error correction codes, processor diagnostic circuitry and the like to maintain data as error-free as possible while it is being processed in a data processing system.
Many errors in large data processing systems are diagnosed and corrected by the use of a processor that is used exclusively for diagnosis and maintenance functions. For example, in the 8500 Series of computer systems sold by NCR Corporation, Dayton, Ohio, a service subsystem performs a number of diagnostic and maintenance functions during the operation of the computer system. Specifically, the NCR service subsystem has responsibility for executing programs that test various parts of the computer system when an error is detected. Other functions include controlling an operator console, controlling a disc driver so that firmware stored on a flexible disc can be loaded into the control store of the system's central processor, and performing similar maintenance-related functions either on a continuing basis during the operation of the computer system or as may be selected by a service technician when the computer system is being serviced.
While conventional forms of error diagnosis are suitable in most instances, there are some instances when they cannot be used. For example, in a computer system that is bus-oriented, i.e., that has a plurality of subsystems (or printed circuit boards) that are connected along a single system bus, a hardware fault at any output gate that connects any one of the subsystems to the system bus may prevent the bus from being used to diagnose the system to locate the fault. In particular, if the circuitry in the subsystems is implemented using ECL (emitter-coupled logic) technology, a fault at an output gate will often cause a bit line of the system bus to be "stuck" at a "high" or "1" logic level. In such a circumstance, the bit line will remain "high" until the fault is corrected. While the bit line is "high" it cannot be used, for example, by a service subsystem to address each subsystem in order to diagnose the error.
There has, therefore, arisen the need for diagnostic circuitry that can be used, in conjunction with conventional servicing and diagnosing circuitry, to determine which one of a plurality of subsystems is causing a bus to be held at a voltage or signal level that makes the bus unavailable for use in conventional diagnostic operations.